Go Web应用框架开发秘籍

您所在的位置:网站首页 gowebsocket 广播 github Go Web应用框架开发秘籍

Go Web应用框架开发秘籍

#Go Web应用框架开发秘籍| 来源: 网络整理| 查看: 265

在本章中,我们将介绍以下配方:

创建第一个 WebSocket 服务器 创建第一个 WebSocket 客户端 调试第一个本地 WebSocket 服务器 调试第一个远程 WebSocket 服务器 单元测试您的第一个 WebSocket 服务器 介绍

WebSocket 在服务器和客户端之间提供了双向、单套接字、全双工连接,使得实时通信比其他方式(如长轮询和服务器发送事件)更高效。

有了 WebSocket,客户端和服务器可以独立对话,在初次握手后,双方可以同时发送和接收信息,重用客户端到服务器和服务器到客户端的相同连接,最终大大减少了延迟和服务器负载,允许 web 应用以最有效的方式执行现代任务。大多数主流浏览器都支持 WebSocket 协议,包括 Google Chrome、Microsoft Edge、Internet Explorer、Firefox、Safari 和 Opera。因此不存在兼容性问题。

在本章中,我们将学习如何创建 WebSocket 服务器和客户端,编写单元测试并调试本地或远程运行的服务器。

创建第一个 WebSocket 服务器

在本食谱中,我们将学习如何编写 WebSocket 服务器,这是一个 TCP 应用,监听端口8080,允许连接的客户端相互发送消息。

怎么做… 使用go get命令安装github.com/gorilla/websocket包,如下所示: $ go get github.com/gorilla/websocket 创建websocket-server.go将 HTTP 请求升级到 WebSocket,从客户端读取 JSON 消息,并将其广播到所有连接的客户端,如下所示: package main import ( "log" "net/http" "github.com/gorilla/websocket" ) var clients = make(map[*websocket.Conn]bool) var broadcast = make(chan Message) var upgrader = websocket.Upgrader type Message struct { Message string `json:"message"` } func HandleClients(w http.ResponseWriter, r *http.Request) { go broadcastMessagesToClients() websocket, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Fatal("error upgrading GET request to a websocket :: ", err) } defer websocket.Close() clients[websocket] = true for { var message Message err := websocket.ReadJSON(&message) if err != nil { log.Printf("error occurred while reading message : %v", err) delete(clients, websocket) break } broadcast


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3